feat: add Firebender integration (Android Studio / IntelliJ)#3077
Conversation
Firebender (https://firebender.com/) is an AI coding agent for Android Studio and IntelliJ. It reads project-local custom slash commands from .firebender/commands/*.mdc and project rules from .firebender/rules/*.mdc. Add a FirebenderIntegration (MarkdownIntegration) that installs the speckit command templates as .mdc command files and writes the managed context section into .firebender/rules/specify-rules.mdc. command_filename is overridden so init-time commands also use the .mdc extension Firebender requires. Register it in the integration registry, add the catalog entry and docs row, and add an integration test covering the .mdc command output. Closes github#1548 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Adds a new built-in integration for Firebender (Android Studio / IntelliJ) to Spec Kit’s integration registry, catalog, tests, and public documentation.
Changes:
- Introduces
FirebenderIntegrationas aMarkdownIntegrationthat emits.mdccommand files and manages rules in.firebender/rules/specify-rules.mdc. - Registers the new integration and adds coverage via a dedicated integration test.
- Updates the built-in integrations catalog and the reference documentation to list Firebender.
Show a summary per file
| File | Description |
|---|---|
src/specify_cli/integrations/firebender/__init__.py |
New Firebender integration using .firebender/ with .mdc command outputs. |
src/specify_cli/integrations/__init__.py |
Registers FirebenderIntegration in the built-in integration registry. |
tests/integrations/test_integration_firebender.py |
Adds integration tests tailored to Firebender’s .mdc command extension. |
tests/integrations/test_registry.py |
Includes firebender in the expected registry keys list. |
integrations/catalog.json |
Adds Firebender entry to the built-in integrations catalog. |
docs/reference/integrations.md |
Documents Firebender in the supported integrations table. |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 6/6 changed files
- Comments generated: 2
|
Please address Copilot feedback |
… multi-install safe Bump the catalog top-level updated_at to reflect the new entry, and add firebender (with its .firebender/commands + .firebender/rules/specify-rules.mdc isolation paths) to the 'currently declared multi-install safe integrations' table in the docs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Addressed both Copilot findings in da79ad7:
Re-verified locally: Disclosure: this update and comment were prepared with Claude Code (Claude Opus 4.8) under my direction; I reviewed the changes and ran the checks before pushing. |
|
Thank you! |
Description
Closes #1548 — adds Firebender (AI coding agent for Android Studio / IntelliJ) as a built-in integration. A maintainer invited this on the issue ("Open for your or anyone else contribution for this!").
Firebender reads project-local customization from a
.firebender/directory, verified against Firebender's docs:.firebender/commands/*.mdc(Markdown with optional YAML frontmatter) — "Command files use the.mdcextension"..firebender/rules/*.mdc.So
FirebenderIntegrationis a standardMarkdownIntegrationthat:.firebender/commands/speckit.*.mdc,.firebender/rules/specify-rules.mdc(the existing generic.mdchandling adds thealwaysApply: truefrontmatter, same as the Cursor.mdcpath),command_filename()so the init-time commands also use.mdc(the extension Firebender requires —.mdfiles are not recognized), keeping it consistent withregistrar_config["extension"].Follows the 6-step
integrations/CONTRIBUTING.mdchecklist and mirrors recent agent additions (Hermes #2547, Kimi, Trae). Purely additive — no existing integration, CLI flag, output, or file format changes;AGENT_CONFIGSis auto-derived from the registry.Files: new
integrations/firebender/__init__.py+ test; registry import/register;integrations/catalog.jsonentry;docs/reference/integrations.mdrow.Heads-up: open agent-addition PRs #3063 (ZCode) and #2734 (Alquimia) also touch the alphabetical block in
integrations/__init__.pyandcatalog.json; happy to rebase whichever lands first.Testing
uv run specify --help(exit 0)uv sync && uv run pytestspecify init --here --integration firebender --script sh(andps) scaffolds.firebender/commands/speckit.*.mdc+.firebender/rules/specify-rules.mdc(covered by the integration test's CLI inventory cases)Details (Windows 11, Python 3.12.12):
uvx ruff check src/— All checks passeduv run pytest tests/integrations/test_integration_firebender.py— 20 passed (registration, config, setup/teardown roundtrip, context upsert/remove,.mdccommand output, and fullspecify initfile inventory for bothshandps)uv run pytest tests/integrations/test_registry.py tests/test_agent_config_consistency.py— 1136 passed (registry completeness + the multi-install-safe distinct-root/commands/context contracts for the new.firebender/namespace)npx markdownlint-cli2 docs/reference/integrations.md— 0 errorsuv run pytest— the only failures are the 14 pre-existing Windowsos.symlinkWinError 1314privilege failures (unrelated, identical to cleanmain).AI Disclosure
Developed with Claude Code (Claude Opus 4.8) under my direction. AI helped research Firebender's documented file conventions (
.firebender/commands/*.mdc,.firebender/rules/*.mdc), implement the integration mirroring the existing pattern, and run the verification above. I confirmed the.mdccommand requirement against Firebender's official docs, verified the change is purely additive, and reviewed the full diff before submitting. I'll disclose if any review responses are AI-assisted as well.